package locacao.negocio.bo;

import java.sql.Connection;

import locacao.integracao.dao.RentACarPST;
import locacao.negocio.to.RentACarTO;
import locacao.negocio.to.VeiculoTO;

public class VeiculoBO {
	
	private RentACarTO rentACarTO;
	private RentACarPST rentACarPST;
	

	public VeiculoBO() {
		rentACarTO = new RentACarTO();
		rentACarPST = new RentACarPST();
	}

	/**
	 * @param idVeiculo
	 * @param fabricante
	 * @param modelo
	 * @param ano
	 * @param qtdPortas
	 * @param cor
	 * @param placa
	 * @param combustivel
	 * @param status
	 */
	public void addVeiculo(String fabricante, String modelo, int ano,
                  int qtdPortas, String cor, String placa, String combustivel,
                  String status){
		try {
			VeiculoTO veiculo = rentACarTO.getVeiculo(0, fabricante, modelo, ano, qtdPortas, cor, placa, combustivel, status);
			rentACarPST.addOrUpdateVeiculo(veiculo);
		} catch (Exception e) {
			System.out.println("Log Erro: " + e.getMessage());
		}
	}

	/**
	 * @param idVeiculo
	 * @param fabricante
	 * @param modelo
	 * @param ano
	 * @param qtdPortas
	 * @param cor
	 * @param placa
	 * @param combustivel
	 * @param status
	 */
	public void updateVeiculo(int idVeiculo, String fabricante, String modelo, int ano,
                  int qtdPortas, String cor, String placa, String combustivel,
                  String status){
   
		try {
			VeiculoTO veiculo = rentACarTO.getVeiculo(idVeiculo, fabricante, modelo, ano, qtdPortas, cor, placa, combustivel, status);
			rentACarPST.addOrUpdateVeiculo(veiculo);
		} catch (Exception e) {
			System.out.println("Log Erro: " + e.getMessage());
		}	
	}
	
	/**
	 * @param idVeiculo
	 */
	public void excludeVeiculo(int idVeiculo){
		try {
			VeiculoTO veiculo =rentACarTO.getVeiculo(idVeiculo);
			rentACarPST.excludeVeiculo(veiculo);	
		} catch (Exception e) {
			System.out.println("Log Erro: " + e.getMessage());
		}
	}
	
	
    /**
     * @return
     */
    public String[] getInfoVeiculos(){
    	return RentACarPST.getInstance().getVeiculoDAO().getInfoVeiculos();

    }

    
    public String[] getPesquisaVeiculos(Integer id){
    	try {
    		return RentACarPST.getInstance().getVeiculoDAO().findVeiculoById(id);
	    } catch (Exception e) {
			System.out.println("Log Erro: " + e.getMessage());
			return null;
		}
    }
    

    public Connection gerarRelatorioVeiculos(){
    	return rentACarPST.getInstance().getConn().getConnection();
    }
	
}
